import axios from 'axios'
// import useUserStore from '@/stores/userStore'
// const userStore = useUserStore()
// import { storeToRefs } from 'pinia'
// const { userInfo } = storeToRefs(userStore)
import { Message } from 'view-ui-plus'

let baseURL = ''
if (import.meta.env.MODE == 'development') {
  baseURL = 'http://localhost:5173' // 开发模式
} else if (import.meta.env.MODE == 'production') {
  baseURL = 'http://localhost:5173' // 生产模式
} else {
  baseURL = 'http://192.168.1.1:8080' // 测试服务器地址
}

const instance = axios.create({
  baseURL: baseURL,
  timeout: 5000,
})

let loadingInstance: any = null
// 设置请求拦截
instance.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    // 设置token值
    // const token = userInfo.value?.token || ''
    // if (token) {
    //   config.headers['Authorization '] = token
    // }
    // 设置loading效果
    return config
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error)
  },
)
// 设置响应拦截
instance.interceptors.response.use(
  (response) => {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    if (response.status === 200) {
      if (response.data.code == 200) {
        Message.success({
          content: response.data.message,
        })
        return response.data
      } else {
        Message.error({
          message: response.data.message,
        })
        return Promise.reject(response)
      }
    }
  },
  (error) => {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    if (error.response) {
      switch (error.response.status) {
        case 401:
          console.log('暂无权限')
          // 错误处理逻辑
          Message.error(error.message || '暂无权限')
          break
        case 404:
          console.log('接口地址不存在')
          Message.error(error.message || '接口地址不存在')
          break
        case 500:
          console.log('服务错误')
          Message.error(error.message || '服务错误')
          break
        default:
          console.log('错误：', error.message)
      }
    } else if (error.request) {
      console.log('请求错误：', error.request)
    } else {
      console.log('其他错误：', error.message)
    }
    return Promise.reject(error)
  },
)

export default instance
